package cn.hss.thread;

/**顾客线程类,主要负责吃包子
 * @author 作者：HeShaoShuai
 * @Email 邮箱：2569819541@qq.com
 * @Date 日期：2023/4/28 16:38
 * @Package 包名：cn.hss.thread
 * @Project 项目名：JavaSE
 * @Version 1.0
 */
public class CustomerClass extends Thread{
	private BaoZi bz;

	public CustomerClass(BaoZi bz) {
		this.bz=bz;
	}
	//表示统计顾客的人数
	int count=1;
	//设置线程任务是吃包子
	@Override
	public void run() {
		while(true){
			synchronized (bz){
				//对包子状态进行判断
				if(!bz.flag){
					try {
						bz.wait();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
				//顾客被唤醒之后，开始吃包子
				System.out.println("顾客"+count+"正在吃"+bz.skin+
						bz.stuffing+"包子");
				try {
					Thread.sleep(5000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				//吃完包子后修改包子的状态为false
				bz.flag=false;
				System.out.println("顾客"+count+"已经将"+bz.skin+
						bz.stuffing+"的包子吃完了");
				count++;
				//唤醒包子铺生产包子
				bz.notify();
				System.out.println("包子铺开始生产包子");
			}
		}
	}
}